#ifndef MMAP_H_
#define MMAP_H_

#include <types.h>
#include <linkedlist.h>

#define MMAP_TYPE_AVAILABLE 0
#define MMAP_TYPE_IO 1
#define MMAP_TYPE_PCI 2
#define MMAP_TYPE_BIOS 3
#define MMAP_TYPE_VIDEO 4
#define MMAP_TYPE_KERNEL 5
#define MMAP_TYPE_RESERVED 6
#define MMAP_TYPE_OTHER 7

typedef struct mem_range
{
	byte type;
	dword start;
	dword end;
} mem_range_t;

linkedlist_t *mmap;

int init_mmap(void);
int add_mem_range(byte type, dword start, dword end);

#endif /*MMAP_H_*/
